System and user interface supporting use of customizable expressions by applications

ABSTRACT

A user friendly interface system enables a user to incorporate, in an executable application, custom decision logic in the form of an expression involving a high-level script language. A system for providing a user interface display image supporting user entry of an expression involves a user interface menu generator for providing a displayable image. The displayable image includes a first image window listing a plurality of selectable data items available for incorporation in an expression as well as an image prompt element. The image prompt element permits user entry of the expression and incorporation of a data item in an entered expression from the listed data items to provide a resultant expression in response to user selection of the data item in the first image window. The displayable image also includes an icon for initiating storing of the resultant expression. The system also involves an expression processor for processing the resultant expression to provide a result in response to user selection of the icon for initiating processing. Other display windows allow user selection of an expression name and an algebraic operator and indicate allowable data item values.

[0001] This is a non-provisional application of provisional applicationserial No. 60/300,893 by J. Haley et al. filed Jun. 26, 2001 and ofprovisional application serial No. 60/307,193 by J. Haley et al. filedJul. 23, 2001.

FIELD OF THE INVENTION

[0002] This invention concerns a system and user interface supportingmultiple different executable applications employing user customizableexpressions for determining computable values or searching for records,for example.

BACKGROUND OF THE INVENTION

[0003] It is desirable for software applications executing on PCs,servers and other processing devices for business or other purposes tooffer users the capability of customizing application functions to meetspecific customer needs. To this end, it is advantageous to allow anapplication to support the use of a user customizable expression todetermine particular decision logic to be used by the application. Suchan expression may take various forms and may include algebraic elementsfor implementing a variety of functions including, for example,computing a value or range of values, defining search criteria forperforming a record search as well as defining a statement to beverified. In a health care payment processing system, a user may enter acustomizable expression to estimate an insurance company reimbursementsum for a particular procedure, or to search for particular patientrecords or to verify particular eligibility criteria of a specificpatient, or for many other purposes, for example.

[0004] A number of problems arise in offering a user the capability ofcustomizing expressions for use with one or more software applications.These include the difficulty posed in providing a user interface that isstraightforward to use by a person who is not a software programmer andyet provides the capability to implement any function that the user maydesire. Other difficulties arise in integrating the entered expressionwith the associated software application in a manner that allowsexecution of the application together with the expression in anefficient manner without significant degradation in execution speed. Afurther difficulty arises in maintaining multiple expressions (perhapshundreds or thousands of expressions) associated with multiple differentapplications and managing the update, editing and replacement ofexpressions. An expression may become obsolete, for example, if dataused by an associated application is changed.

[0005] One known system allows a user to define an expression for usewith an application by employing an extensive decision matrix ofavailable customizable expression options and associated data to be usedwith the expression options. This approach limits the expressions thatmay be used to those supported by the decision matrix and results in thecreation of a complex matrix that is not user friendly. Another knownsystem allows a user to define an expression using SQL (Structured QueryLanguage) in the form of stored procedures to determine desired decisionlogic. This has the disadvantage of being difficult to use since itrequires expertise to produce efficient SQL procedures and alsotypically exposes a user to the complexities involved in the datarelationships between the expression and the application that uses it.It also bypasses the abstraction and data integrity rules that arewritten into the application business objects.

[0006] A system according to invention principles addresses theseproblems and derivative problems.

SUMMARY OF INVENTION

[0007] A user friendly interface system enables a user to incorporate,in an executable application, custom decision logic in the form of anexpression involving a high-level script language. A system forproviding a user interface display image supporting user entry of anexpression involves a user interface menu generator for providing adisplayable image. The displayable image includes a first image windowlisting a plurality of selectable data items available for incorporationin an expression as well as an image prompt element. The image promptelement permits user entry of the expression and incorporation of a dataitem in an entered expression from the listed data items to provide aresultant expression in response to user selection of the data item inthe first image window. The displayable image also includes an icon forinitiating storing of the resultant expression. The system also involvesan expression processor for processing the resultant expression toprovide a result in response to user selection of the icon forinitiating processing.

BRIEF DESCRIPTION OF THE DRAWING

[0008]FIG. 1 shows a user interface and processing system supporting useof customizable expressions, according to invention principles.

[0009]FIG. 2 shows system functions involved in creating and processinguser customizable expressions, according to invention principles.

[0010]FIG. 3 shows a flowchart of a process supporting use of usercustomizable expressions by multiple different executable applications,according to invention principles.

[0011]FIG. 4 shows a flowchart of a process for providing a userinterface display image supporting user entry of an expression,according to invention principles.

[0012]FIG. 5 shows a diagram showing user interaction and navigationaspects associated with the expression entry user interface, accordingto invention principles.

[0013]FIG. 6 shows a business application display window for use indisplaying an expression employed by the application, according toinvention principles.

[0014]FIG. 7 shows a user interface display image supporting usercreation of an expression, according to invention principles.

DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS

[0015]FIG. 1 shows a user interface and processing system supporting useof customizable expressions. The system enables the incorporation ofdesired decision logic in a business application to tailor theapplication function to user requirements. The decision logic is enteredin the form of an expression involving a high-level, user friendly, easyto understand script language. The user interface, for example, allowsapplication business users, such as users involved in health careinsurance reimbursement, to customize their institution rules forassigning services to appropriate contract packages and terms. In thiscontext, a customizable expression may also be used to allow users todefine formulas for calculating rates of reimbursement and to enableusers to define rules for assigning services to contract packages andterms. A customizable expression may also be used to enable a user todefine rules for routing scheduled task lists to individuals or groupsof individuals assigned to perform the tasks. Further, the customizableexpression processing system is readily applicable to incorporatevarious forms of expression into various business and otherapplications.

[0016] The high-level, user friendly, easy to understand script languageadvantageously used to enter customizable expression decision logicshields users from the underlying complexities involved in incorporatinga user defined expression within an application (such as involved inusing JAVA or SQL, for example). It is also adaptable to meet differentrequirements and obviates any need to anticipate the many ways a usermay formulate expressions to process data. The high level scriptlanguage also facilitates the provision of a user interface that isstraightforward to use by a member of the general public and yetprovides the capability to implement any function that the user maydesire.

[0017] The customizable expression processing system also supports anefficient method of maintaining and executing user entered customizableexpressions in conjunction with associated business applications. Thismethod advantageously involves version numbering expressions so that alatest expression version may be dynamically identified and compiledtogether with an associated business application. This is done to ensureexecution speed of the composite application comprising the businessapplication plus latest desired expression is not degraded. The versionnumbering system also supports the maintenance of multiple expressionsas well as the use of an expression by multiple different applicationsand may also be used to ensure that a business application uses the sameversion of an expression throughout the lifetime of the businessapplication. Further, the disclosed system enables restriction andcontrol of the data that is exposed to a user for entry in an expressionand supports association of descriptive information with items of dataexposed to users. In addition multiple user selectable templateexpressions are provided for user alteration advantageously facilitatingthe user interface process.

[0018] The principles of the invention may be applied to any system andapplications involving user entry of resolvable expressions to modifyapplication function. Further, although the preferred embodiment isdescribed as being implemented in JAVA, and XML this is exemplary only.The system may be implemented in a variety of different languages as theprinciples of the invention are independent of languages used.

[0019] In the system of FIG. 1 a user enters an expression representingdecision logic for use by a business application program 30 to tailorthe application function to user requirements. An exemplary expressionused to determine patient eligibility for reimbursement for a particularservice is shown within item 579 of FIG. 6. The user enters theexpression via a PC user interface 10 display menu associated withapplication interface 25 of application 30. The application interface 25display menu provides windows supporting user selection of predetermineditems 12 associated with application 30. Specifically, a user selects(from items 12) a predetermined template expression for amendment withpredetermined data items and expression operators that are compatiblewith application 30 thereby advantageously simplifying the userinterface. Application 30 employs one or more data specification XMLfiles specifically associated with particular interface 25 ofapplication 30. The data specification XML files are stored in anapplication 30 database and determine the predetermined data items 12that are available for selection by a user via display windows of the PCuser interface 10 display menu. The application 30 data specificationfiles also optionally provide a user accessible description ofindividual exposed data items. Alternatively, in another embodiment auser may compose and apply an expression using PC interface 10 withoutusing items 12.

[0020] Application 30 allocates both a Type and Group identifier to anexpression entered by a user via the PC user interface 10 display menuassociated with the application interface 25. The Type identifieridentifies a specification used to define the input and outputparameters that are received or provided by an application 30 procedureinvolved in processing the entered expression. An application such asapplication 30 typically comprises one or more procedures (termedobjects) such as objects 31 and 33 of FIG. 1. In more complexembodiments multiple application 30 procedures (e.g., objects 33 ofFIG. 1) may be involved in processing an entered expression. Theexpressions of a specific Type are compiled into a single JAVA classfile. A JAVA class comprises a user defined data type and identifies themembers of the class. The Group identifier allocated to an expression byapplication 30 identifies expressions of a particular Type that arecompiled together into a single JAVA class file. Therefore expressionsof a particular Type may comprise different Groups of expressions and aparticular Type expression may be in more than one Group. DifferentGroup identifiers may be allocated to a template (model) expression of aparticular Type available for user selection and to a user enteredexpression of the same Type, for example.

[0021] A high level script language expression entered by a user via thePC interface 10 display menu associated with the application interface25 is retained, together with a user entered identification name for theexpression, in application server storage 14. Application 30 operatingon the server initiates compilation of the high level script languageexpression into code of a particular JAVA class executable inconjunction with compiled application 30 in response to receiving theuser entered expression. In other embodiments, application 30 mayinitiate compilation using a different (i.e., non-Java) languagecompiler and upon other events including, for example, a convenientprocessing point when interruption of application 30 is not disruptiveor upon collection of several expressions, for example. The enteredexpression is compiled into a JAVA class determined based on the Typeand Group identifiers previously allocated to the entered expression byapplication 30. The resultant compiled expression is in the form of aJAVA class source file. Further, since application 30 is a JAVAapplication, application 30 and the compiled expression operate togetherwith negligible degradation in speed. Application 30 initiatescompilation of the entered expression using expression compiler 20 whichin turn employs JAVA compiler 21 operating in conjunction with a SUNMicrosystems tool JAVACC (a JAVA parser generator—unit 26) downloadablefrom Sun Microsystems web site with negligible degradation in speedassociated with data marshalling.

[0022] Unit 20 applies the Type and Group identifiers previouslyallocated to the user entered expression by application 30 in compilingthe expression into a particular selected JAVA class file. Further, unit23 allocates a version number to the compiled JAVA class file so that alatest expression version may be dynamically identified and compiledtogether with business application 30 and associated application objects31 and 33. This enables the latest compiled version of the expression tobe identified and used at application 30 execution time. Therebyexecution speed of the composite application comprising application 30including objects 31 and 33 together with the compiled expression is notdegraded. The resultant compiled JAVA class file is stored in accordancewith allocated Type, Group and version attributes in unit 17 for accessand loading of the latest expression version together with applicationobject 31 (and other objects 33) upon initiation of execution ofapplication 30.

[0023] In operation, application 30 calls an application object 31procedure for evaluating a user created expression stored in unit 17 inresponse to user initiation of expression evaluation via interface 25.For this purpose application 30 employs the Type and Group identifiersassociated, both with the application interface 25, and with theexpression to be evaluated, for use in accessing this expression storedin unit 17. The identified compiled expression is therefore accessedfrom unit 17 and executed using data provided by application object 31.In this manner application 30 controls the linking of compiled JAVAclass expressions in unit 17 with application objects 31 and 33 forcreating a composite executable compiled application. Thereforeapplication 30 governs the operation timing and use of createdexpressions. Further, application 30 also initiates generation of userinterface windows and menus to support users entry, amendment andmaintenance of an expression. It should be noted that in anotherembodiment a user entered expression may be interpreted (rather thancompiled) in response to initiation of execution of application 30.Though this approach may involve a reduction in application 30 executionspeed.

[0024]FIG. 2 shows preliminary system functions involved in creating andpreparing a user entered expression for use by application 30 (FIG. 1).An expression 45 entered by a user via the PC user interface 10 displaymenu associated with the application interface 25 (FIG. 1) is parsed byparser 60 of FIG. 2 to verify (76) the expression syntax is valid.Specifically, an entered expression is deemed valid if the expressionsyntax is compatible with application object 31 (of application 30) usedto process the expression. Upon successful validation, if there alreadyis a matching compiled group, then the expressions are recompiled with anew version number. The application 30 allocates both a Type and Groupidentifier associated with application interface 25 (FIG. 1) to theentered expression for use in establishing the expression relationship(74) with application object 31. Failure to validate the enteredexpression causes generation of a displayed message to a user indicatinga syntax check failure and identifying particular elements or featuresof the entered expression that are unacceptable. Upon successfulvalidation and establishing the expression relationship with applicationobject 31, the resultant expression is stored in unit 50.

[0025]FIG. 3 shows a flowchart of a server system process using adatabase to support use of user customizable expressions by multipledifferent executable applications, e.g., application 30 plus anotherdifferent application 90 (not shown in the drawings to preserve drawingclarity). In step 303, following the start at step 300, the serversystem employs a database to associate application interface 25 ofapplication 30 (FIG. 1) with a particular set of data items to be madeavailable for user inclusion in an expression to be used by application30. Specifically, this particular set of data items is associated withan expression entered using a menu associated with application interface25. Other data items are excluded from being available for inclusion inthe expression entered using the menu associated with applicationinterface 25. The server system also uses the database to associateapplication 90 with a different set of data items to be made availablefor user inclusion in an expression for use by application 90. Dataitems that may be selectively made available for incorporation in anexpression in a health care insurance reimbursement application maycomprise, for example, a patient identifier, a patient physicalcharacteristic, patient address information and patient medical recordinformation. In practice, the type of data items to be used depends onthe nature of the application processing them.

[0026] An illustrative business application display window for use indisplaying an expression employed by an application interface (such asby application interface 25 of application 30) is shown in FIG. 6. Theapplication interface display window 570 of FIG. 6 illustrates use of ahealthcare insurance reimbursement application (e.g., application 30) todetermine qualification for insurance reimbursement. Specifically, theFIG. 6 display image window allows a user to select a previously createdexpression via display element 526 and display it in element 579 inresponse to selection of item 588. The particular expression in item 579shown in FIG. 6 is processed by the application to determine patientqualification for reimbursement for diagnostic procedures for particularconditions (specifically, medical conditions identified by codes 400.1,400.2 and 400.3). A user may select icon 575 to add in an expressionfrom storage to the menu of available expressions (displayable viaelement 579) in the FIG. 6 interface window.

[0027] In step 306 of FIG. 3, the server system employs the database tofurther associate application interface 25 of application 30 withcandidate template expressions available for user selection and entryusing interface 25. The server system also advantageously receives userselection information identifying one of the multiple candidate templateexpressions for inclusion and amendment within a displayed expressionentry prompt element. This provides a user friendly and efficient wayfor a user to easily derive a desired function. The server systemsimilarly associates application interface 25 of application 30 withexpression operators and acceptable parameters and values for userselected data items as well as with an identifier indicating theparticular application 30 and application interface 25 involved. A userinterface display is generated by the server system in step 309 forproviding a user interface display image (exemplified in FIG. 7)supporting user entry of an expression. In step 314, the server systemreceives a user entered expression incorporating one or more data itemsselected from the available items specifically associated withapplication interface 25 of application 30. The server system updatesthe database in step 318 to associate the received expression withparticular application interface 25 of application 30.

[0028] In step 324, the server system compiles the received expressionand associates the compiled expression with a version identifier and anapplication Type and Group identifier before storing the compiledexpression in step 326. Alternatively, the expression may be associatedwith one or more of the version identifier, application Type and Groupidentifier before compilation as described in connection with FIGS. 1and 2. The application Type indicator identifies a particularapplication and application interface (of multiple applications)involved in supporting entry and processing of a user enteredexpression. In step 329, the server system links the compiled expressionwith application 30 and specific objects within the application (such asobjects 31 and 33 of FIG. 1) to support execution of application 30together with the compiled expression. The expression version number isused to ensure the latest compiled expression version is employed byapplication 30. However, a desired prior version expression mayalternatively be selected and applied. In step 331, the compiledexpression is resolved using data provided from application 30 (andobjects 31 and 33) and a result is returned to application 30 fordisplay and access by a user. The result may comprise a computed value,a definition of rules to be used, a verification that a resolvedexpression is true (or not true), or an identification of recordsderived from a search of a database in response to resolving theexpression, for example. A user customizable expression may be used totailor an application function in a multitude of ways. The expressionmay be used to customize formulas, to search for particular records, toassign services to an entity, to define rules for routing scheduled tasklists and other purposes. Further, a notification may be processed fordisplay to a user by application 30 in response to the received result.The notification may indicate a success or failure of a task such as anassignment of records to an entity or to indicate a reason for failure,for example. The process of FIG. 3 terminates at step 335.

[0029]FIG. 4 shows a flowchart of a process (as employed in step 309 ofFIG. 3) used by application interface 25 of application 30 (FIG. 1) forproviding a user interface display image supporting user entry of anexpression. In step 405 of FIG. 4, following the start at step 400,application 30 initiates generation of a user interface display imagesupporting user creation of an expression as exemplified in FIG. 7. Thegenerated display image includes a window 710 listing multiple dataitems including a set of data items available for inclusion in anexpression entered by a user via prompt element 500. The data items arehierarchically listed within window 710 and each data item is associatedwith an item description displayed in response to a user placing acursor upon the item representative icon. The set of data itemsavailable for inclusion is specifically associated with applicationinterface 25 and application 30. A different set of data items isassociated with a corresponding different application (e.g., application90 as previously mentioned). The different set of data items is alsomade available for user selection via window 710 for inclusion in anexpression for use with the different application. Data items availablefor inclusion and use by a particular application are visuallyhighlighted in window 710 relative to data items that are not availableto the particular application.

[0030] The generated display image also includes a prompt element 700supporting user entry of an expression identification name and a window725 indicating acceptable values, parameters and ranges of values andparameters for a data item selected via window 710. The generateddisplay image further includes a window 726 permitting user selectionfrom a set of expression operators available for inclusion in anexpression entered by a user via prompt element 500. The set ofexpression operators available for inclusion is specifically associatedwith application interface 25 and application 30 in a similar fashion tothe set data items in window 710. Icons 715 and 719 enable a user toinitiate exit from the expression entry display menu of FIG. 7 uponsuccessful expression creation and storage or upon cancellation of useof the FIG. 7 menu, respectively.

[0031] In step 407 of FIG. 4, application 30 initiates display of awindow (not shown to preserve clarity) including multiple templateexpressions available for user selection and inclusion in expressionentry prompt element 500 (FIG. 7). The set of template expressionsavailable for inclusion is specifically associated with applicationinterface 25 and application 30 in a similar fashion to the set dataitems of window 710 and the operators of window 726. Upon user selectionof a particular template expression from multiple available displayedexpressions the particular expression is included for user amendment andcustomization in prompt element 500 (FIG. 7). In step 411, upon editingand amendment of the template expression to provide the user desiredexpression, the expression syntax is parsed and validated in response touser selection of icon 717 (FIG. 7). If a syntax error is detected theuser is notified by a displayed message indicating a syntax checkfailure and identifying particular elements or features of the enteredexpression that are unacceptable. An entered expression is deemed validif the expression syntax is compatible with application 30 (and itssoftware objects and procedures) used to process the expression. Uponsuccessful validation, application 30 stores the expression in step 413in response to user selection of icon 715 (FIG. 7). Application 30processes the stored expression in step 415 to provide a result inresponse to user selection of an icon in a user interface menu ofapplication interface 25 of application 30. The process of FIG. 4terminates at step 420.

[0032]FIG. 5 shows a diagram illustrating user interaction andnavigation operation of application 30 and the application 25 userinterface exemplified in FIG. 6 and the expression entry user interfaceexemplified in FIG. 7. A user selects a previously created expression byits name via element 526 in FIG. 5 (also shown in FIG. 6). The selectedexpression is displayed in an expression creation menu exemplified inFIG. 7 (specifically in item 500 of FIG. 7) in response to userselection of icon 588 of FIG. 5 (also shown in FIG. 6). A user selectsdata items (command 507) to populate expression display element 500 viawindow 710. A user also selects (commands 508, 511 and 515) other itemsto populate the expression including allowable values via window 725,miscellaneous values via window 724 and operators via window 726.Allowable values in window 725 may be displayed for informationalpurposes or may be selectable by a user for inclusion in the expressiondepending on the parameter involved. Upon user selection of variousitems via commands 507, 508, 511 and 515, the selected items areincluded in the expression display element 500 via corresponding actions517, 520, 527 and 529.

[0033] A user edits the populated expression in display element 500 tomeet his requirements and upon completion of editing, selects an exitoption (command 533). Exit options are initiated via user selection oficons 715, 717 or 719 (FIGS. 5 and 7). User selection of icon 717initiates a syntax check of the expression which results in eithersuccessful validation of the expression or user notification of a syntaxerror by a displayed message. Similarly, user selection of icon 715initiates a syntax check of the expression which also results in eithersuccessful validation notification to a user or user notification of asyntax error by a displayed message. However, successful expressionsyntax validation in response to selection of icon 715 also results inexit from the display menu of FIG. 7. User selection of icon 719 resultsin discarding non-stored data and exit from the display menu of FIG. 7.Following creation of an expression using the interaction and navigationprocedure of FIG. 5, the expression is available for processing byapplication 30 to provide a result in response to user selection of anicon in a user interface menu of application interface 25.

[0034] The architecture, user interfaces and processes presented in FIG.1-7 are not exclusive and may be adapted to accommodate differentelements and properties. Other architectures and processes may also bederived in accordance with the principles of the invention to accomplishthe same objectives. Further, the inventive principles may beincorporated into any language based applications not just JAVA or XMLcompatible applications. For this purpose a data dictionary may bereadily provided including expression data items, operators and otherpredetermined elements associated with particular applications andapplication interfaces that may be used. Thereby avoiding the need to beconstrained to use of JAVA type class files. Further, the inventiveprinciples may be implemented in JAVA code incorporated into a non-JAVAapplication capable of invoking the JAVA code and executing customerprovided expression decision logic.

Description of Terms

[0035] JAVA—A simple, object-oriented, distributed, robust, securearchitecture neutral, multithreaded language. Additional information isavailable at many sites, including http://java.sun.com.

[0036] Extensible Markup Language (XML)—this is an important Internetstandard used to encode structured data passed between computer systems.The World Wide Web Consortium maintains this public standard. Additionalinformation is available at http://www.w3.org/XML.

[0037] JAVACC—Java parser generator. Additional information is availableat http://www.webgain.com/products/metamata/java doc.html

What is claimed is:
 1. A system for providing a user interface displayimage supporting user entry of an expression, comprising: a userinterface menu generator for providing a displayable image including, afirst image window listing a plurality of selectable data itemsavailable for incorporation in an expression, an image prompt elementfor permitting user entry of said expression and for incorporating adata item in an entered expression from said listed data items toprovide a resultant expression in response to user selection of saiddata item in said first image window, and an icon for initiating storingof said resultant expression; and an expression processor for processingsaid resultant expression to provide a result in response to usercommand.
 2. A system according to claim 1, wherein said expressionprocessor resolves said resultant expression to provide a resultcomprising at least one of, (a) a verification said resultant expressionis true and (b) a computed value.
 3. A system according to claim 1,wherein said expression processor interprets said resultant expressionto provide search parameters for use in identifying records in adatabase and provides an indication of said identified records as saidresult in response to a search of said database.
 4. A system accordingto claim 1, wherein said expression processor verifies an enteredexpression is valid and generates an indication as said resultidentifying said entered expression is invalid.
 5. A system according toclaim 4, wherein said expression processor initiates generation of adisplayed notification to a user indicating said entered expression isinvalid.
 6. A system according to claim 1, wherein said displayableimage includes an icon for initiating verification an entered expressionis valid.
 7. A system according to claim 6, wherein said verificationincludes a syntax check of said entered expression.
 8. A systemaccording to claim 1, wherein said displayable image includes an imageprompt element supporting user entry of a name for identifying aresultant expression.
 9. A system according to claim 1, wherein saiduser interface menu generator provides an image window permitting userselection of a template expression from a plurality of predeterminedtemplate expressions.
 10. A system according to claim 9, wherein saidimage prompt element incorporates a selected template expression inresponse to user selection of said selected template expression.
 11. Asystem according to claim 1, wherein said first image window lists aplurality of selectable data items in a hierarchical structure.
 12. Asystem according to claim 11, wherein said plurality of selectable dataitems are associated with user accessible data item descriptions.
 13. Asystem according to claim 1, wherein said system supports storage andretrieval of a resultant expression.
 14. A system for providing a userinterface display image supporting user entry of an expression for usein deriving information associated with a patient, comprising: a userinterface menu generator for providing a displayable image including, afirst image window listing a plurality of selectable data itemsavailable for incorporation in an expression, said plurality ofselectable data items identifying at least one of, (a) a patient, (b) apatient physical characteristic, (c) patient address information and (d)patient medical record information, an image prompt element permittinguser entry of said expression and for incorporating a data item in saidexpression from said listed data items to provide a resultant expressionin response to user selection of said data item in said first imagewindow, and an icon for initiating storing of said resultant expression;and an expression processor for resolving said resultant expression toprovide a result in response to user command.
 15. A system according toclaim 14, wherein said expression includes an algebraic expressionportion including one or more algebraic operators, and said userinterface menu generator provides an image window permitting userselection of an algebraic expression operator from a plurality ofpredetermined algebraic expression operators including at least two of(a) a multiplication operator, (b) a division operator, (c) an additionoperator and (d) a subtraction operator.
 16. A system according to claim14, wherein said user interface menu generator provides an image windowindicating at least one of, (a) an acceptable parameter and (b) anacceptable value, associated with a data item selected by a user viasaid first image window.
 17. A system for providing a user interfacedisplay image supporting user entry of an expression, comprising: a userinterface menu generator for providing a displayable image including, afirst image window listing a plurality of selectable data itemsavailable for incorporation in an expression, an image prompt elementpermitting user entry of said expression and for incorporating a dataitem in said entered expression from said listed data items to provide aresultant expression in response to user selection of said data item insaid first image window, an icon for initiating verification of saidresultant expression to determine said resultant expression is valid,and an icon for initiating storing of a valid resultant expression; andan expression processor for resolving said valid resultant expression toprovide a result in response to user command.
 18. A system according toclaim 17, wherein said system for providing a user interface displayimage comprises machine executable code stored on a tangible storagemedium.
 19. A method for providing a user interface display imagesupporting user entry of an expression, comprising the steps of:initiating display of an image including, a first image window listing aplurality of selectable data items available for incorporation in anexpression, an image prompt element permitting user entry of saidexpression and for incorporating a data item in said entered expressionfrom said listed data items to provide a resultant expression inresponse to user selection of said data item in said first image window,and an icon for initiating verification of said resultant expression todetermine said resultant expression is valid, and an icon for initiatingstoring of said resultant expression; and verifying said resultantexpression is valid in response to user selection of said icon forinitiating verification.